class jichu:
    def jibenshujuleixing(self):
        a=1 #整形
        b=2.1#浮点
        c="hello"#字符串
        d=True #布尔,注意首字母大写
        e=(1,3,4,'昨天')#元组是不可变的数组
        f=[2,5,7,'32']#列表
        g={2,4,5,"今天"}#字典
        print('输出整数a的类型:{0}和a的值:{1}'.format(type(a),a))
        print('输出浮点b的类型:{type}和b的值:{zhi}'.format(type=type(b),zhi=b))
        print('输出字符串c的类型{0}和c的值{1}'.format(type(c),c))
        print('输出布尔d的类型{type}和d的值{zhi}'.format(type=type(d),zhi=d))
        print('输出元组e的类型{0}和e的值{1}'.format(type(e), e))
        print('输出列表f的类型{0}和c的值{1}'.format(type(f), f))
        print('输出字典g的类型{0}和g的值{1}'.format(type(g),g))

    def tuplejibencaoz(self):
        tuple01=(2,3,5,6,'hello') #定义一个元组，不可变数组
        print('打印元组',tuple01)
        print('通过下标（即：索引，从0开始）读取元组中的单个元素',tuple01[0])
        #print('下标越界:',tuple01[9])#报错：IndexError: tuple index out of range
        print('如果是[x:y]形式，取值范围[1,4)',tuple01[1:4])
        print('取值范围[0,3)',tuple01[:3])
        print('取值范围[1,4]',tuple01[1:])
        print('取值范围从下标1元素开始间隔2位取一个值',tuple01[1:5:3])

    def listjibencaozuo(self):
        list01=[1,2,3,4,5,6,7]#列表是可变数组，可变的含义：列表里的元素值可追加、可插入、可修改、可删除、可排序
        print(list01)
        print(list01[0:4])#输出[1, 2, 3, 4]

        list01.append('彭冠英')#在末尾新增元素
        print(list01)#输出：[1, 2, 3, 4, 5, 6, 7, '彭冠英']

        list01.insert(0,'盛开')#往指定索引位置插入元素
        print(list01)#输出['盛开',1, 2, 3, 4, 5, 6, 7, '彭冠英']

        list01.pop(1) #删除下标为1的元素
        print(list01)#['盛开', 2, 3, 4, 5, 6, 7, '彭冠英']

        list01.remove(7)#给出具体的要删除的元素的值来进行删除
        print(list01)#['盛开', 2, 3, 4, 5, 6, '彭冠英']

        list01.reverse()#倒序排序后的列表
        print('倒序排序后的列表：', list01)


        list01.clear()#清空列表所有值
        print(list01)#[]


    def ifpanduan(self):
        # 例子1期末考试分数评级系统，需求：满分100分
        # 95分以上 - - S
        # 80~94分 - - A
        # 60~79分 - - B
        # 60分以下 - - C
        fenshu=float(input("请您的输入分数："))#input输入的默认为str类型，分数为数字才能判断大小，需要转一下
        if int(fenshu)>=95:
            print('S')
        elif fenshu>=80 and fenshu <=94:
            print('A')
        elif fenshu>=60 and fenshu<=79:
            print('B')
        elif fenshu<60:
            print('C')
        else:
            print('请输入正确格式的分数')

    def ifqiantao(self):
        # if嵌套结构：王者玩家登录系统，输入最高的段位，段位正确再输入选择对抗的路线（只有打野和辅助位置可选）
        print('欢迎进入王者荣耀')
        duanwei=input('请输入您的段位：')
        if duanwei in ('王者','星耀','钻石'):
            fenlu=input('请选择您的分路：')
            if fenlu in('中单','上单','游走'):
                print('该位置已被选择，请更换')
            elif fenlu in ('打野','ADC'):
                print('欢迎来到峡谷')
            else:
                print('请输入正确分路')
        else:
            print('进入游戏失败')


    def whilexunhuan(self):
        i=1
        j=10
        a=int(input('请输入1-3的整数'))
        if a==1:   #打印1-10
            while i<=10:
                print(i,end='、')#不换行
                i = i + 1
        elif a==2:   #打印10-1
            while j>=1:
                print(j,end='、')
                j=j-1
        elif a==3 :
            while j:#打印10-1此写法j=0时为假，跳出循环
                print(j,end='、')
                j=j-1
        print('\n')
        print('-' * 36)  # 每次执行完此方法都打印一条横线


    def forinxunhuan(self):
        a=int(input('请输入1-5的整数'))
        sum=0
        if a==1:
            for i in range(10):
                print(i+1,end='、')
                i=i+1
        elif a==2:
            # range()方法也可以使用2个参数range(x, y)，和切片的原理一样，
            # 先看y，一共生成y个数字的元组，再看x，从下标x的地方开始截取
            for i in range(1,11):
                print(i,end='、')
        elif a==3:
            # range()方法也可以使用3个参数range(x, y, z)，和切片的原理一样，
            # 参数z代表每隔z位显示值，这里z=2，那么就是每隔2位显示值，
            for i in range(1,11,1):
                print(i,end='、')
        elif a==4:
            # range()方法打印1~10的偶数和偶数相加的和
            for i in range (1,11):
                if i%2==0:
                    print(i)
                    sum=sum+i
            print(sum)
        elif a==5:
            # 方法2：range()方法打印1~10的偶数和偶数相加的和
            for i in range(2,11,2):
                print(i)


    def forinxunhuan2(self):
        list=["王一搏","彭冠英"]
        for i in list:
            print('我喜欢{}'.format(i))


    #循环打断
    def xunhuantiaochu(self):
        while True:
            wenhao=input('主人，您有什么话和我说吗？')
            if wenhao=='退下':
                print('遵命')
                break
            else:
                print("主人您真帅")


    def sanjiaoxing(self):
        x=int(input('请输入第一条边长'))
        y= int(input('请输入第二条边长'))
        z= int(input('请输入第三条边长'))
        if x+y>z and x+z>y and y+z>x:
            if x==y==z:
                print('等边三角形')
            elif x==y or x==z or y==z:
                print('等腰三角形')
            else:
                print('普通三角形')
        else:
            print('不是三角形')


    def sushu(self):
        num = int(input('主人，请输入一个整数，我来帮您判断它是不是素数：'))
        if num <= 1:
            print('主人，抱歉，您输入的{}不是素数。'.format(num))
        else:
            for i in range(2, num):#除数从2开始每次循环加1，被除数每次循环除以除数均不能被整除则是素数
                if num % i == 0:
                    print('主人，抱歉，您输入的{}不是素数。'.format(num))
                    break
                else:
                    print('是素数')


    #计算a的阶乘
    def jiecheng(self,a,sum):
        for i in range(1,a+1):
            sum=sum*i
            i=i+1

        return sum






if __name__ == '__main__':
    jichu=jichu()
    # print('--------------基本数据类型--------------')
    # jichu.jibenshujuleixing()
    # print('--------------元组的应用----------------')
    # jichu.tuplejibencaoz()
    # print('--------------列表的应用----------------')
    # jichu.listjibencaozuo()
    # print('--------------判断的应用1----------------')
    # jichu.ifpanduan()
    # print('--------------判断的应用2----------------')
    # jichu.ifqiantao()
    # print('--------------while的应用1----------------')
    # jichu.whilexunhuan()
    # print('--------------for in的应用1----------------')
    # jichu.forinxunhuan()
    # print('--------------for in的应用2----------------')
    # jichu.forinxunhuan2()
    # print('--------------跳出循环的应用----------------')
    # jichu.xunhuantiaochu()
    # print('--------------判断三角形----------------')
    # jichu.sanjiaoxing()
    # print('--------------判断素数----------------')
    # jichu.sushu()
    print('--------------阶乘----------------')
    print(jichu.jiecheng(3, 1))

